package simulator;
import pteam.LeftActor;

/**
 *  
 *  Application that directs the robot
 *
 */
public interface Actor {
  /**
   * Called whenever the robot is not moving (after a wait* call to the
   * simulator). Application code is run from here, called once every
   * kernel cycle. Each time this method is called, the robot has a chance to 
   * respond to its current circumstances
   * 
   * @param s the simulator object
   */
  public void act(Robot s);
  
  /**
   * Called whenever there is new sensor information.  This is called every time
   * at least one of the sensors has a new value.  Sensors are always enumerated
   * in the same order, so you may refer to them directly by their index in the
   * array.
   * 
   * @param sensors an array of {@link Sensor} objects
   * @see Sensor
   */
  public void updateSensors(Sensor[] sensors);
  
  //Defines what maze file the Simulator should select for execution
  public String getMaze();
}